/**
 * 项目名称: LCR_024.cpp
 * 项目路径: study/DataStructure/LinkedList/LeetCode/剑指Offer
 * 编辑时间: 2024年06月27日21时44分57秒
 * 用   户: 轻尘
 */

#include <bits/stdc++.h>

using namespace std;

struct ListNode {
    int val;
    ListNode *next;

    ListNode() : val(0), next(nullptr) {}

    ListNode(int x) : val(x), next(nullptr) {}

    ListNode(int x, ListNode *next) : val(x), next(next) {}
};

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(!head)return nullptr;
//  暴力头插法
//        ListNode * per = head;
//        ListNode * result = nullptr;
//
//        while (per){
//            ListNode * p = new ListNode;
//            p->val = per->val;
//            p->next = result;
//            result = p;
//            per = per->next;
//        }

        ListNode * per = nullptr;
        ListNode * cpu = head;
        ListNode * tmp = nullptr;
        while (cpu){
            tmp = cpu->next;
            cpu->next = per;
            per = cpu;
            cpu = tmp;
        }
        delete cpu,tmp;
        return per;
    }
};

int main() {

    return 0;
}
